package com.uatair.common.mqtt.util;

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;

public class FileUtil {

    /**
     * 读取文本文件全部内容（默认UTF-8编码）
     * @param filePath 文件路径
     * @return 文件内容字符串
     * @throws IOException 如果文件不存在或读取失败
     */
    public static String readAllText(String filePath) throws IOException {
        return readAllText(filePath, StandardCharsets.UTF_8);
    }

    /**
     * 读取文本文件全部内容（指定编码）
     * @param filePath 文件路径
     * @param charset 字符编码
     * @return 文件内容字符串
     * @throws IOException 如果文件不存在或读取失败
     */
    public static String readAllText(String filePath, Charset charset) throws IOException {
        // Java 7+ 高效读取方式
        byte[] bytes = Files.readAllBytes(Paths.get(filePath));
        return new String(bytes, charset);
    }

    // 兼容Java 6的替代方案（如果必须）
    /*
    public static String readAllText(String filePath) throws IOException {
        StringBuilder content = new StringBuilder();
        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = reader.readLine()) != null) {
                content.append(line).append(System.lineSeparator());
            }
        }
        return content.toString().trim();
    }
    */
}
